import { app, BrowserWindow, globalShortcut } from 'electron';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

let mainWin;

async function createWindow() {
  mainWin = new BrowserWindow({
    width: 1280,
    height: 800,
    useContentSize: true,
    backgroundColor: '#0b0f14',
    // ツールバー等を消すなら:
    frame: true,                 // 完全にフレーム無し（必要なら true に）
    autoHideMenuBar: true,        // Alt押下でのみメニュー表示（Windows）
    fullscreen: false,            // 起動時フルスクリーンにしたいなら true
    alwaysOnTop: false,           // 司会モニタの上に固定したいときは true
    webPreferences: {
      nodeIntegration: false,
      contextIsolation: true,
      nativeWindowOpen: true,     // ← これが重要！ window.open() を“別ウィンドウ”に
      autoplayPolicy: 'no-user-gesture-required' // 音は開始ボタンで鳴らす想定なので任意
    }
  });

  // ローカルの index.html を読み込み
  mainWin.loadFile(path.join(__dirname, 'index.html'));

  // 便利ショートカット（任意）
  globalShortcut.register('F11', () => {
    mainWin.setFullScreen(!mainWin.isFullScreen());
  });
  globalShortcut.register('Ctrl+Shift+F', () => {
    // フレームの有無を切り替えたいケース用（任意）
    const bounds = mainWin.getBounds();
    const isFrameless = mainWin.isMenuBarVisible() === false && mainWin.isFullScreen() === false;
    mainWin.setFullScreen(false);
    mainWin.setMenuBarVisibility(true);
    mainWin.close();
    createWindow(); // 簡易再生成（本格運用なら設定保存/復元を）
  });
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
  // macOS 以外は全部閉じたら終了
  if (process.platform !== 'darwin') app.quit();
});

app.on('activate', () => {
  // macOS: Dock から再度開く
  if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
